From UML to ANSI-C - An Eclipse-Based Code Generation Framework

نویسندگان

  • Mathias Funk
  • Alexander Nyßen
  • Horst Lichter
چکیده

Model-driven engineering has recently gained broad acceptance in the field of embedded and real-time software systems. While larger embedded and real-time systems, developed e.g. in aerospace, telecommunication, or automotive industry, are quite well supported by model-driven engineering approaches based on the UML, small embedded and real-time systems, as they can for example be found in the industrial automation industry, are still handled a bit novercal. A major reason for this is that the code generation facilities, being offered by most of the UML modeling tools on the market, do indeed support C/C++ code generation in all its particulars, but neglect the generation of plain ANSI-C code. However, this would be needed for small embedded and real-time systems, which have special characteristics in terms of hard time and space constraints. Therefore we developed a framework, which allows to generate ANSI conformant C code from UML models. It is built on top of Eclipse technology, so that it can be integrated easily with available UML modeling tools. Because flexibility and customizability are important requirements, the generation process consists of a model-to-model transformation between the UML source model and an intermediate ANSI-C model, as well as a final model-to-text generation from the intermediate ANSI-C model into C code files. This approach has several advantages compared to a direct code generation strategy.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

PapyrusRT: Modelling and Code Generation (Invited Presentation)

In this talk we introduce PapyrusRT, an open-source, industrial-strength model-driven development environment for real-time and embedded systems, implementing UML-RT [2,3], a UML-based language. PapyrusRT is implemented on top of Papyrus, an Eclipse modelling tool for UML, SysML, and EMF models. We describe the motivations for this project and in particular for the need of an open-source enviro...

متن کامل

Specifying Domain-Specific Refactorings for AndroMDA Based on Graph Transformation

Applying refactoring in a model-driven software engineering context raises many new challenges that need to be addressed. In this paper, we consider model-driven software development based on the code generation framework AndroMDA. Considering the UML profile for AndroMDA, we come up with a number of domain-specific model refactorings. In its most recent version, the AndroMDA code generation ca...

متن کامل

txtUML

The name txtUML stands for textual, executable, translatable UML. It is an Eclipse-based tool built on top of JDT, Xtext/Xbase and Papyrus UML. The tool is designed for textual model editing. This makes storage, version control, compare and merge processes, editing and searching easier and more efficient. The tool supports two textual syntaxes for modeling: the standalone syntax, which is desig...

متن کامل

Transformation of Protégé Ontologies into the Eclipse Modeling Framework A Practical Use Case based on the Foundational Model of Anatomy

Introduction The Eclipse Modeling Framework (EMF) “is a modeling framework and code generation facility for building tools and other applications based on a structured data model. From a model specification described in XMI, EMF provides tools and runtime support to produce a set of Java classes for the model, a set of adapter classes that enable viewing and command-based editing of the model, ...

متن کامل

A Model-based Design Environment for Executing Self-* Software Components

This paper describes mocas (Model Of Components for Adaptive Systems), a component model which relies on a model execution environment to create software components with self-* cabilities. A mocas component has its structure constrained by a uml profile and its behavior specified with a uml state machine. The state machine is embedded into the component at runtime and executed by an engine. The...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008